package pe.cliente.proyecto.core.daobase;
import java.util.Date;
import java.util.List;

import pe.adra.core.dao.DAOUtil;
import pe.adra.core.ext.soporte.SuportEntidad;
import pe.adra.util.exception.DAOException;
import pe.cliente.proyecto.core.daobase.impl.ResponsableDAOBaseImpl.ResponsableDAOBaseUtil;
import pe.cliente.proyecto.dominio.Responsable;

public interface ResponsableDAOBase{

	public static final String STR_ENTIDAD = "Responsable";
	public static final String CAMPO_ID= "id";
	public static final String CAMPO_NOMBRE= "nombre";
	public static final String CAMPO_UUID= "uuid";
	public static final String CAMPO_FECHAREGISTRO= "fechaRegistro";
	public static final String CAMPO_FECHAACTUALIZADA= "fechaActualizada";
	public static final String CAMPO_ACTIVO= "activo";
	public static final String CAMPO_CODIGOUSUARIO= "codigoUsuario";

	
	public static final String SQL_QUERY = DAOUtil.SQL_SELECT + DAOUtil.SQL_SE + DAOUtil.SQL_FROM + STR_ENTIDAD + DAOUtil.SQL_SE;
	public static final String SQL_QUERY_COUNT = DAOUtil.SQL_SELECT + DAOUtil.SQL_COUNT + "(" + DAOUtil.SQL_SE + ")" + DAOUtil.SQL_FROM + STR_ENTIDAD + DAOUtil.SQL_SE;

	public static final String SQL_QUERY_CBO =   DAOUtil.SQL_SELECT + DAOUtil.SQL_SEA + CAMPO_ID + "," + DAOUtil.SQL_SEA + CAMPO_NOMBRE + DAOUtil.SQL_FROM + STR_ENTIDAD + DAOUtil.SQL_SE;

	
	public int countListaResponsable( Responsable filtro ) throws DAOException;
	public int countListaResponsable( Responsable filtro, Date finit, Date ffin ) throws DAOException;
	public List<Responsable> getListaResponsable( Responsable filtro, int inicio, int fin, String strSort, String strOrder, SuportEntidad... innerjoin ) throws DAOException;
	public List<Responsable> getListaResponsable( Responsable filtro, Date finit, Date ffin, int inicio, int fin, String strSort, String strOrder, SuportEntidad... innerjoin ) throws DAOException;

	public List<Responsable> getCboResponsable() throws DAOException;
	public List<Responsable> getCboResponsable( Responsable filtro ) throws DAOException;
	public List<Responsable> getResponsablePorID( Integer[] ids , String tipo , SuportEntidad innerjoin ) throws DAOException;
	public ResponsableDAOBaseUtil setQuery();

}
